package com.sparkseries.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.util.Date;

/**
 * 系统日志实体类，对应数据库中的 sys_log 表。
 * 该类包含了系统日志的各种属性，如日志级别、类型、操作信息、创建者、请求信息等。
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName("sys_log")
public class SysLog implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 日志ID，使用 MyBatis-Plus 的 ASSIGN_ID 策略自动分配。
     */
    @TableId(type = IdType.ASSIGN_ID)
    private Long id;

    /**
     * 日志级别
     */
    private String logLevel;

    /**
     * 日志类型
     */
    private String logType;

    /**
     * 操作描述
     */
    private String logOperation;

    /**
     * 创建者标识
     */
    private String createBy;

    /**
     * 创建日期
     */
    private Date createDate;

    /**
     * 请求URI
     */
    private String requestUri;

    /**
     * 请求方式，如 GET、POST 等
     */
    private String requestMethod;

    /**
     * 请求参数
     */
    private String requestParams;

    /**
     * 请求时长，单位为毫秒
     */
    private Integer requestTime;

    /**
     * 用户代理信息
     */
    private String userAgent;

    /**
     * 操作IP地址
     */
    private String remoteAddr;

    /**
     * 请求服务器地址
     */
    private String serverAddr;

    /**
     * 是否异常标识
     * 0: 正常
     * 1: 异常
     */
    private Integer status;

    /**
     * 异常信息
     */
    private String errorInfo;

    /**
     * 日志详细信息
     */
    private String info;

}